package com.cskaoyan.javse.oop2._1extends._0introduction._2new;
/**
 * 继承的引入
 * 分别定义一个表示人和学生的类：
 *
 * 1. 人类：有姓名属性，以及吃饭这个行为
 * 2. 教师类：有姓名，教师号两个属性，同时有吃饭，教学两种行为
 * 3. 学生类：有姓名，学号两个属性，同时有吃饭，学习两种行为
 *
 * 代码写完了，代码有什么特点？有什么缺点？
 * 人类中的成员，在教师类和学生类中都有，可不可以复用呢？
 * 想要复用类的成员，就需要使用继承的语法
 *
 * 继承的语法：
 * Java当中，在定义一个类时，可以直接显式的指出它继承了某一个类，这样它就会得到被继承类的所有成员
 * [访问权限修饰符] class 类名 extends 被继承的类/已经存在的类{
 *     // 类体
 * }
 *
 * 注意：
 *      1.我们把被继承的类称之为父类，继承父类的类叫做子类。
 *      2.子类得到父类的所有成员
 *          注：继承中讲的继承成员，指的是普通成员的继承，一般不考虑静态成员的继承（它也不是继承）
 *          构造器也不能算成员。
 *      3.父类中没有的成员，子类继承不了。
 *      4.子类可以在继承父类的基础上，再新增自己的成员。这叫做子类扩展了父类（青出于蓝而胜于蓝，子类的功能往往比父类更加强大）
 *
 * @since 14:42
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Teacher t = new Teacher();
        System.out.println(t.name);
        Student s = new Student();
        s.eat();
        // s.age;
    }
}

class Person{
    String name;
    public void eat(){
        System.out.println("吃饭！");
    }
}

class Teacher extends Person{
    int teacherId;
    public void teach(){
        System.out.println("上课！");
    }
}

class Student extends Person{
    int stuId;
    public void study(){
        System.out.println("学习！");
    }
}
